﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;

namespace WebCoreAPI.DDD
{
    public class UserConfig : IEntityTypeConfiguration<User>
    {
        public void Configure(EntityTypeBuilder<User> builder)
        {
            builder.Property("passwordHash");//特征三
            builder.Property(u => u.Remark).HasField("remark");//特征四
            builder.Property(u=> u.season).HasConversion<string>(); //如果使用该语句，则数据库中存放的名称，否则是枚举对应的Int值
            builder.Ignore(u => u.Tag);//特征五
            builder.OwnsOne(u=>u.Location);  //值对象与实体的关系，生成的表中字段名称为Location_属性名
            builder.OwnsOne(c => c.UserName, nb => {
            nb.Property(e => e.English).HasMaxLength(20).IsUnicode(false); //对应的英文
            nb.Property(e => e.Chinese).HasMaxLength(20).IsUnicode(true);  //对应的中文
            });
            
        }
    }
}
